# 1数据结构综合实战
# 元组练习
# t = ("A",)
# (2)
# t = ("A", "B", "D", "E", "F", "K", "S", "T", "W", "O", "P", "Z")
# t = t[5:9:1]
# print(t)
# from os import remove
#
# #列表练习
# data = []
# data.append("A")
# data.append("B")
# data.append("C")
# data.insert(3,("A","B","C"))
# print(data.count("A"))
#
# #字典练习
# info = {"Python":[
#     {"sid": 1, "name": "tom", "age": 22, "gender": "male", "course": ["python", "pytest", "flask", "html", "css", "javascript"]},
#     {"sid": 2, "name": "jack", "age": 22, "gender": "female", "course": ["python", "pytest", "flask", "html", "css", "javascript"]},
#     {"sid": 3, "name": "rose", "age": 22, "gender": "male", "course": ["python", "pytest", "flask", "html", "css", "javascript"]}
# ]}
# info["Python"].append({"sid": 4, "name": "hong", "age": 22, "gender": "female", "course": ["python", "pytest", "flask", "html", "css", "javascript"]})
# info["Python"][2]["gender"] = "female"
# info["Python"][3]["course"].remove("python")
# info["Python"][0]["address"] = "Beijing"
# print(info)
#
# 字典新添加数据的插入顺序
# 在 Python 3.7 及其之后的版本中，字典（dict）会按照元素插入的顺序来维护键值对。这一行为是 Python 语言规范的一部分，因此字典在保持插入顺序方面是可靠和稳定的。在 Python 3.6 中，这一特性已经作为实现细节存在，但并未作为语言规范的一部分正式保证
#
# 深拷贝和浅拷贝
# 浅拷贝是创建一个新对象，新对象中的数据与原对象中的数据具有相同的地址，也就是说新对象中的一部分数据是共享原对象中的数据的地址。如果原对象中的某些数据被改变，那么新对象中共享该数据的部分也会发生改变。
# 深拷贝是创建一个新对象，新对象中的数据与原对象中的数据地址不同，也就是说新对象中的所有数据都是独立的。如果原对象中的某些数据被改变，那么新对象中不会受到影响。

# python中的容器有哪些
# Python 提供了丰富的容器类型，包括列表、元组、字典、集合等。每种类型都有其独特的特性和适用场景。列表和元组用于有序数据的存储，字典用于键值对的快速查找，集合用于存储唯一元素，字符串用于文本数据的操作。选择合适的容器类型可以提高代码的可读性和性能。
#
# python中列表删除元素有哪几种方法
# remove()	删除第一个指定元素
# pop()	取出并删除指定下标元素
# clear()	清除列表
# del	结合下标删除指定元素
# 推导式
#
# is与==的区别
# == 运算符: 只比较两个对象的值，相同返回 True，不同返回 False。
# is 运算符: 比较两个对象的 id，相同返回 True，不同返回 False
#
# 【练习】猜拳游戏
# import random
# player = input("石头/剪刀/布/结束:")
# if player != "结束":
#     break
# computer = random.choice(["石头","剪刀","布"])
# print(f"电脑出:{computer}")
# if player == computer:
#     print("平局")
# elif (player == "石头" and computer =="剪刀") or \
#     (player == "布" and computer == "石头") or \
#     (player == "剪刀" and computer == "布"):
#     print("player win")
# else:
#     print("computer win")
#
# 【练习】成绩判断
# sorce = int(input("输入分数:"))
# if sorce >=90 :
#     print("A等级")
# elif sorce >=60:
#     print("B等级")
# else:
#     print("C等级")
#
# 【练习】计算器
# a = float(input("输入第一个数:"))
# b = float(input("输入第二个数:"))
# c = input("运算符 (+ - * /):")
# if c == '+':
#     result = a + b
# elif c == '-':
#     result = a - b
# elif c == '*':
#     result = a * b
# elif c == '/':
#     if b != 0:
#         result = a / b
#     else:
#         print("除数不能weiling")
# else:
#     result = "无效运算符"
# print(result)
#
# 【练习】模拟乘车过程
# a = int(input("公交卡当前金额:"))
# if a >= 2 :
#     print("可以上车")
#     b = input("车上是否有座位(有/没有)")
#     if b == '有':
#         print("有座位可以坐下")
#     else:
#         print("没有座位,只能站着")
# else:
#     print("余额不足,不能上车")
#
# 【练习】回文数(切片实现)
# num = input("请输入一个数：")
# if num == num[::-1]:
#     print(f"{num} 是一个回文数!")
# else:
#     print(f"{num} 不是一个回文数!")
#
# 【练习】闰年
# year = int(input("输入年份:"))
# if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
#     print(f"{year} 是闰年")
# else:
#     print(f"{year} 不是闰年")
#
# 【练习】数据统计
# def func1():
#     n_sum = 0
#     n_max = None
#     n_min = None
#     data = [23456, 234, 23, 423, 423, 423, 423, 412, 3235, 346, 47, 5687, 678, 7, 453623, 4523, 565, 786, 9789, 567,
#             34634, 234]
#     i = 0
#     l = len(data)
#     while i < l :
#         n = data[i]
#         n_sum += n
#         if n_max == None or n_max < n:
#             n_max = n
#         if n_min == None or n_min > n:
#             n_min = n
#         i += 1
#     avg_num = n_sum / l
#     print(n_sum)
#     print(n_max)
#     print(n_min)
#     print(avg_num)
#
# # 【练习】整数转二进制数
#  def func5():
#      result = ""
#      data = int(input("Num:"))
#      while data != 0:
#          tmp = data % 2
#          data = data // 2
#          result = str(tmp) + result
#      print(result)
#
